/*
 *  Copyright 2019 Sergey Khabarov, sergeykhbr@gmail.com
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

#ifndef __DEBUGGER_SRC_SOCSIM_PLUGIN_FPU_FUNC_TESTS_H__
#define __DEBUGGER_SRC_SOCSIM_PLUGIN_FPU_FUNC_TESTS_H__

#include <inttypes.h>

namespace debugger {

const uint64_t TestCases_FDIV_D[][2] = {
    {0xc17312d000000000, 0x0000000000000001},
    {0x4024a5604189374c, 0xc015554c985f06f7},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4136705100000000},
    {0x4179062540000000, 0x7fff000000000000},
    {0x410b543a8f5c28f6, 0x400f374bc6a7ef9e},
    {0x3fd2b020c49ba5e3, 0x410a67cc51eb851e},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41cc509cf9000000},
    {0x4190d62860000000, 0x7fff000000000000},
    {0x411a6f79f5c28f5c, 0x401b78d4fdf3b646},
    {0x403ba4dd2f1a9fbf, 0x412169da47ae147b},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41c28668a8000000},
    {0x41997e1c88000000, 0x7fff000000000000},
    {0x410cb99c00000000, 0x402e03126e978d50},
    {0x4038649ba5e353f8, 0x40ee43f1eb851eb8},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4180006560000000},
    {0x41930f4ff4000000, 0x7fff000000000000},
    {0x40f15cbdeb851eb8, 0x403da872b020c49c},
    {0x4023dc28f5c28f5c, 0x410dce91851eb851},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000001, 0xc17312d000000000},
    {0x0000000000000001, 0xc060000000000000},
    {0x0000000000000001, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000001, 0x0000000000000000},
    {0x0000000000000001, 0x413458550295fc56},
    {0x0000000000000001, 0x4060000000000000},
    {0x0000000000000001, 0x3ff0000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0xc060000000000000, 0x0000000000000001},
    {0x0000000000000000, 0x0000000000000001},
    {0x413458550295fc56, 0x0000000000000001},
    {0x4060000000000000, 0x0000000000000001},
    {0x3ff0000000000000, 0x0000000000000001},
    {0xffff000000001100, 0x41b8d4ee24000000},
    {0x41b5f5621a000000, 0x7fff000000000000},
    {0x41068da947ae147b, 0x403b59999999999a},
    {0x4030f0e560418937, 0x411729f91eb851eb},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000008000, 0xc17312d000000000},
    {0x0000000000008000, 0xc060000000000000},
    {0x0000000000008000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000008000, 0x0000000000000000},
    {0x0000000000008000, 0x413458550295fc56},
    {0x0000000000008000, 0x4060000000000000},
    {0x0000000000008000, 0x3ff0000000000000},
    {0x0000000000008000, 0x0000000000008000},
    {0xc17312d000000000, 0x0000000000008000},
    {0xc060000000000000, 0x0000000000008000},
    {0x0000000000000000, 0x0000000000008000},
    {0x413458550295fc56, 0x0000000000008000},
    {0x4060000000000000, 0x0000000000008000},
    {0x3ff0000000000000, 0x0000000000008000},
    {0xffff000000001100, 0x41a3190398000000},
    {0x41a97e881c000000, 0x7fff000000000000},
    {0x40caf28000000000, 0x40404ba5e353f7cf},
    {0x3ffa7ae147ae147b, 0x41129062cccccccc},
    {0x0000000000000001, 0x0000000000000001},
    {0x3ff0000000000000, 0x58c8000000000000},
    {0xffff000000001100, 0x41b9c0d8c0000000},
    {0x41b72aa22a000000, 0x7fff000000000000},
    {0x4113d77feb851eb8, 0x403070a3d70a3d71},
    {0x4031020c49ba5e35, 0x4104dfa2e147ae14},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000b1a, 0xc17312d000000000},
    {0x0000000000000b1a, 0xc060000000000000},
    {0x0000000000000b1a, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000b1a, 0x0000000000000000},
    {0x0000000000000b1a, 0x413458550295fc56},
    {0x0000000000000b1a, 0x4060000000000000},
    {0x0000000000000b1a, 0x3ff0000000000000},
    {0x0000000000000b1a, 0x0000000000000b1a},
    {0xc17312d000000000, 0x0000000000000b1a},
    {0xc060000000000000, 0x0000000000000b1a},
    {0x0000000000000000, 0x0000000000000b1a},
    {0x413458550295fc56, 0x0000000000000b1a},
    {0x4060000000000000, 0x0000000000000b1a},
    {0x3ff0000000000000, 0x0000000000000b1a},
    {0xffff000000001100, 0x419a6be460000000},
    {0x41a00fb4bc000000, 0x7fff000000000000},
    {0x410b4b9b0a3d70a4, 0x40392d916872b021},
    {0x40325ef9db22d0e5, 0x40e79ecdc28f5c29},
    {0x0000000000000001, 0x0000000000000001},
    {0x00000000058d0000, 0xc17312d000000000},
    {0x00000000058d0000, 0xc060000000000000},
    {0x00000000058d0000, 0xbeb0c6f7a0b5ed8d},
    {0x00000000058d0000, 0x0000000000000000},
    {0x00000000058d0000, 0x413458550295fc56},
    {0x00000000058d0000, 0x4060000000000000},
    {0x00000000058d0000, 0x3ff0000000000000},
    {0x00000000058d0000, 0x00000000058d0000},
    {0xc17312d000000000, 0x00000000058d0000},
    {0xc060000000000000, 0x00000000058d0000},
    {0x0000000000000000, 0x00000000058d0000},
    {0x413458550295fc56, 0x00000000058d0000},
    {0x4060000000000000, 0x00000000058d0000},
    {0x3ff0000000000000, 0x00000000058d0000},
    {0xffff000000001100, 0x419fd6b71c000000},
    {0x41c1b06d42800000, 0x7fff000000000000},
    {0x40b9fd3851eb851f, 0x402511eb851eb852},
    {0x403136872b020c4a, 0x40f9c0bdc28f5c28},
    {0x0000000000000001, 0x0000000000000001},
    {0x0163400000000000, 0xc17312d000000000},
    {0x0163400000000000, 0xc060000000000000},
    {0x0163400000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0163400000000000, 0x0000000000000000},
    {0x0163400000000000, 0x413458550295fc56},
    {0x0163400000000000, 0x4060000000000000},
    {0x0163400000000000, 0x3ff0000000000000},
    {0x0163400000000000, 0x0163400000000000},
    {0xc17312d000000000, 0x0163400000000000},
    {0xc060000000000000, 0x0163400000000000},
    {0x0000000000000000, 0x0163400000000000},
    {0x413458550295fc56, 0x0163400000000000},
    {0x4060000000000000, 0x0163400000000000},
    {0x3ff0000000000000, 0x0163400000000000},
    {0xffff000000001100, 0x41af2f33e2000000},
    {0x41a0c38c80000000, 0x7fff000000000000},
    {0x4101d8570a3d70a4, 0x40345f7ced916873},
    {0x402750e560418937, 0x411fef69ffffffff},
    {0x0000000000000001, 0x0000000000000001},
    {0x58d0000000000000, 0xc17312d000000000},
    {0x58d0000000000000, 0xc060000000000000},
    {0x58d0000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x58d0000000000000, 0x0000000000000000},
    {0x58d0000000000000, 0x413458550295fc56},
    {0x58d0000000000000, 0x4060000000000000},
    {0x41b4639ed0000000, 0x7fff000000000000},
    {0x41175fbaeb851eb8, 0x4007a3d70a3d70a4},
    {0x403e8147ae147ae1, 0x41205810a3d70a3d},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000b19, 0xc17312d000000000},
    {0x0000000000000b19, 0xc060000000000000},
    {0x0000000000000b19, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000b19, 0x0000000000000000},
    {0x0000000000000b19, 0x413458550295fc56},
    {0x0000000000000b19, 0x4060000000000000},
    {0x0000000000000b19, 0x3ff0000000000000},
    {0x0000000000000b19, 0x0000000000000b19},
    {0xc17312d000000000, 0x0000000000000b19},
    {0xc060000000000000, 0x0000000000000b19},
    {0x0000000000000000, 0x0000000000000b19},
    {0x413458550295fc56, 0x0000000000000b19},
    {0x4060000000000000, 0x0000000000000b19},
    {0x3ff0000000000000, 0x0000000000000b19},
    {0xffff000000001100, 0x4166829820000000},
    {0x41aa16b916000000, 0x7fff000000000000},
    {0x411e1dcad70a3d71, 0x40242353f7ced917},
    {0x3fc6a7ef9db22d0e, 0x40cc37d851eb851e},
    {0x0000000000000001, 0x0000000000000001},
    {0x00000000058c8000, 0xc17312d000000000},
    {0x00000000058c8000, 0xc060000000000000},
    {0x00000000058c8000, 0xbeb0c6f7a0b5ed8d},
    {0x00000000058c8000, 0x0000000000000000},
    {0x00000000058c8000, 0x413458550295fc56},
    {0x00000000058c8000, 0x4060000000000000},
    {0x00000000058c8000, 0x3ff0000000000000},
    {0x00000000058c8000, 0x00000000058c8000},
    {0xc17312d000000000, 0x00000000058c8000},
    {0xc060000000000000, 0x00000000058c8000},
    {0x0000000000000000, 0x00000000058c8000},
    {0x413458550295fc56, 0x00000000058c8000},
    {0x4060000000000000, 0x00000000058c8000},
    {0x3ff0000000000000, 0x00000000058c8000},
    {0xffff000000001100, 0x41ac1e2b90000000},
    {0x41b112678b000000, 0x7fff000000000000},
    {0x4116be493d70a3d7, 0x403d26e978d4fdf4},
    {0x40312b020c49ba5e, 0x411ed5fbb851eb85},
    {0x0000000000000001, 0x0000000000000001},
    {0x0163200000000000, 0xc17312d000000000},
    {0x0163200000000000, 0xc060000000000000},
    {0x0163200000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0163200000000000, 0x0000000000000000},
    {0x0163200000000000, 0x413458550295fc56},
    {0x0163200000000000, 0x4060000000000000},
    {0x0163200000000000, 0x3ff0000000000000},
    {0x0163200000000000, 0x0163200000000000},
    {0xc17312d000000000, 0x0163200000000000},
    {0xc060000000000000, 0x0163200000000000},
    {0x0000000000000000, 0x0163200000000000},
    {0x413458550295fc56, 0x0163200000000000},
    {0x4060000000000000, 0x0163200000000000},
    {0x3ff0000000000000, 0x0163200000000000},
    {0xffff000000001100, 0x417cdb4760000000},
    {0x41bacc435a000000, 0x7fff000000000000},
    {0x40f463dd70a3d70a, 0x402289374bc6a7f0},
    {0x402c90624dd2f1aa, 0x40cfbb8ccccccccc},
    {0x0000000000000001, 0x0000000000000001},
    {0x58c8000000000000, 0xc17312d000000000},
    {0x58c8000000000000, 0xc060000000000000},
    {0x58c8000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x58c8000000000000, 0x0000000000000000},
    {0x58c8000000000000, 0x413458550295fc56},
    {0x58c8000000000000, 0x4060000000000000},
    {0x58c8000000000000, 0x3ff0000000000000},
    {0x58c8000000000000, 0x58c8000000000000},
    {0xc17312d000000000, 0x58c8000000000000},
    {0xc060000000000000, 0x58c8000000000000},
    {0x0000000000000000, 0x58c8000000000000},
    {0x413458550295fc56, 0x58c8000000000000},
    {0x4060000000000000, 0x58c8000000000000}
};

const size_t TSTDDIV_LENGTH = sizeof(TestCases_FDIV_D) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FMUL_D[][2] = {
    {0x0000000000000001, 0xc17312d000000000},
    {0x4024a5604189374c, 0xc015554c985f06f7},
    {0x7ffdd92a4fa86188, 0xfff527d430c40dfb},
    {0xfff83dbe1a26a815, 0xffff0d13540abcd1},
    {0x3fffffffffffffff, 0x3fffffffffffffff},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x3fffffffffffffff, 0xc060000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4136705100000000},
    {0x4179062540000000, 0x7fff000000000000},
    {0x410b543a8f5c28f6, 0x400f374bc6a7ef9e},
    {0x3fd2b020c49ba5e3, 0x410a67cc51eb851e},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41cc509cf9000000},
    {0x4190d62860000000, 0x7fff000000000000},
    {0x411a6f79f5c28f5c, 0x401b78d4fdf3b646},
    {0x403ba4dd2f1a9fbf, 0x412169da47ae147b},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41c28668a8000000},
    {0x41997e1c88000000, 0x7fff000000000000},
    {0x410cb99c00000000, 0x402e03126e978d50},
    {0x4038649ba5e353f8, 0x40ee43f1eb851eb8},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4180006560000000},
    {0x41930f4ff4000000, 0x7fff000000000000},
    {0x40f15cbdeb851eb8, 0x403da872b020c49c},
    {0x4023dc28f5c28f5c, 0x410dce91851eb851},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000001, 0xc060000000000000},
    {0x0000000000000001, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000001, 0x0000000000000000},
    {0x0000000000000001, 0x413458550295fc56},
    {0x0000000000000001, 0x4060000000000000},
    {0x0000000000000001, 0x3ff0000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0xc17312d000000000, 0x0000000000000001},
    {0xc060000000000000, 0x0000000000000001},
    {0x0000000000000000, 0x0000000000000001},
    {0x413458550295fc56, 0x0000000000000001},
    {0x4060000000000000, 0x0000000000000001},
    {0x3ff0000000000000, 0x0000000000000001},
    {0xffff000000001100, 0x41b8d4ee24000000},
    {0x41b5f5621a000000, 0x7fff000000000000},
    {0x41068da947ae147b, 0x403b59999999999a},
    {0x4030f0e560418937, 0x411729f91eb851eb},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000008000, 0xc17312d000000000},
    {0x0000000000008000, 0xc060000000000000},
    {0x0000000000008000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000008000, 0x0000000000000000},
    {0x0000000000008000, 0x413458550295fc56},
    {0x0000000000008000, 0x4060000000000000},
    {0x0000000000008000, 0x3ff0000000000000},
    {0x0000000000008000, 0x0000000000008000},
    {0xc17312d000000000, 0x0000000000008000},
    {0xc060000000000000, 0x0000000000008000},
    {0x0000000000000000, 0x0000000000008000},
    {0x413458550295fc56, 0x0000000000008000},
    {0x4060000000000000, 0x0000000000008000},
    {0x3ff0000000000000, 0x0000000000008000},
    {0xffff000000001100, 0x41a3190398000000},
    {0x41a97e881c000000, 0x7fff000000000000},
    {0x40caf28000000000, 0x40404ba5e353f7cf},
    {0x3ffa7ae147ae147b, 0x41129062cccccccc},
    {0x0000000000000001, 0x0000000000000001},
    {0x3ff0000000000000, 0x58c8000000000000},
    {0xffff000000001100, 0x41b9c0d8c0000000},
    {0x41b72aa22a000000, 0x7fff000000000000},
    {0x4113d77feb851eb8, 0x403070a3d70a3d71},
    {0x4031020c49ba5e35, 0x4104dfa2e147ae14},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000b1a, 0xc17312d000000000},
    {0x0000000000000b1a, 0xc060000000000000},
    {0x0000000000000b1a, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000b1a, 0x0000000000000000},
    {0x0000000000000b1a, 0x413458550295fc56},
    {0x0000000000000b1a, 0x4060000000000000},
    {0x0000000000000b1a, 0x3ff0000000000000},
    {0x0000000000000b1a, 0x0000000000000b1a},
    {0xc17312d000000000, 0x0000000000000b1a},
    {0xc060000000000000, 0x0000000000000b1a},
    {0x0000000000000000, 0x0000000000000b1a},
    {0x413458550295fc56, 0x0000000000000b1a},
    {0x4060000000000000, 0x0000000000000b1a},
    {0x3ff0000000000000, 0x0000000000000b1a},
    {0xffff000000001100, 0x419a6be460000000},
    {0x41a00fb4bc000000, 0x7fff000000000000},
    {0x410b4b9b0a3d70a4, 0x40392d916872b021},
    {0x40325ef9db22d0e5, 0x40e79ecdc28f5c29},
    {0x0000000000000001, 0x0000000000000001},
    {0x00000000058d0000, 0xc17312d000000000},
    {0x00000000058d0000, 0xc060000000000000},
    {0x00000000058d0000, 0xbeb0c6f7a0b5ed8d},
    {0x00000000058d0000, 0x0000000000000000},
    {0x00000000058d0000, 0x413458550295fc56},
    {0x00000000058d0000, 0x4060000000000000},
    {0x00000000058d0000, 0x3ff0000000000000},
    {0x00000000058d0000, 0x00000000058d0000},
    {0xc17312d000000000, 0x00000000058d0000},
    {0xc060000000000000, 0x00000000058d0000},
    {0x0000000000000000, 0x00000000058d0000},
    {0x413458550295fc56, 0x00000000058d0000},
    {0x4060000000000000, 0x00000000058d0000},
    {0x3ff0000000000000, 0x00000000058d0000},
    {0xffff000000001100, 0x419fd6b71c000000},
    {0x41c1b06d42800000, 0x7fff000000000000},
    {0x40b9fd3851eb851f, 0x402511eb851eb852},
    {0x403136872b020c4a, 0x40f9c0bdc28f5c28},
    {0x0000000000000001, 0x0000000000000001},
    {0x0163400000000000, 0xc17312d000000000},
    {0x0163400000000000, 0xc060000000000000},
    {0x0163400000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0163400000000000, 0x0000000000000000},
    {0x0163400000000000, 0x413458550295fc56},
    {0x0163400000000000, 0x4060000000000000},
    {0x0163400000000000, 0x3ff0000000000000},
    {0x0163400000000000, 0x0163400000000000},
    {0xc17312d000000000, 0x0163400000000000},
    {0xc060000000000000, 0x0163400000000000},
    {0x0000000000000000, 0x0163400000000000},
    {0x413458550295fc56, 0x0163400000000000},
    {0x4060000000000000, 0x0163400000000000},
    {0x3ff0000000000000, 0x0163400000000000},
    {0xffff000000001100, 0x41af2f33e2000000},
    {0x41a0c38c80000000, 0x7fff000000000000},
    {0x4101d8570a3d70a4, 0x40345f7ced916873},
    {0x402750e560418937, 0x411fef69ffffffff},
    {0x0000000000000001, 0x0000000000000001},
    {0x58d0000000000000, 0xc17312d000000000},
    {0x58d0000000000000, 0xc060000000000000},
    {0x58d0000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x58d0000000000000, 0x0000000000000000},
    {0x58d0000000000000, 0x413458550295fc56},
    {0x58d0000000000000, 0x4060000000000000},
    {0x41b4639ed0000000, 0x7fff000000000000},
    {0x41175fbaeb851eb8, 0x4007a3d70a3d70a4},
    {0x403e8147ae147ae1, 0x41205810a3d70a3d},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000b19, 0xc17312d000000000},
    {0x0000000000000b19, 0xc060000000000000},
    {0x0000000000000b19, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000b19, 0x0000000000000000},
    {0x0000000000000b19, 0x413458550295fc56},
    {0x0000000000000b19, 0x4060000000000000},
    {0x0000000000000b19, 0x3ff0000000000000},
    {0x0000000000000b19, 0x0000000000000b19},
    {0xc17312d000000000, 0x0000000000000b19},
    {0xc060000000000000, 0x0000000000000b19},
    {0x0000000000000000, 0x0000000000000b19},
    {0x413458550295fc56, 0x0000000000000b19},
    {0x4060000000000000, 0x0000000000000b19},
    {0x3ff0000000000000, 0x0000000000000b19},
    {0xffff000000001100, 0x4166829820000000},
    {0x41aa16b916000000, 0x7fff000000000000},
    {0x411e1dcad70a3d71, 0x40242353f7ced917},
    {0x3fc6a7ef9db22d0e, 0x40cc37d851eb851e},
    {0x0000000000000001, 0x0000000000000001},
    {0x00000000058c8000, 0xc17312d000000000},
    {0x00000000058c8000, 0xc060000000000000},
    {0x00000000058c8000, 0xbeb0c6f7a0b5ed8d},
    {0x00000000058c8000, 0x0000000000000000},
    {0x00000000058c8000, 0x413458550295fc56},
    {0x00000000058c8000, 0x4060000000000000},
    {0x00000000058c8000, 0x3ff0000000000000},
    {0x00000000058c8000, 0x00000000058c8000},
    {0xc17312d000000000, 0x00000000058c8000},
    {0xc060000000000000, 0x00000000058c8000},
    {0x0000000000000000, 0x00000000058c8000},
    {0x413458550295fc56, 0x00000000058c8000},
    {0x4060000000000000, 0x00000000058c8000},
    {0x3ff0000000000000, 0x00000000058c8000},
    {0xffff000000001100, 0x41ac1e2b90000000},
    {0x41b112678b000000, 0x7fff000000000000},
    {0x4116be493d70a3d7, 0x403d26e978d4fdf4},
    {0x40312b020c49ba5e, 0x411ed5fbb851eb85},
    {0x0000000000000001, 0x0000000000000001},
    {0x0163200000000000, 0xc17312d000000000},
    {0x0163200000000000, 0xc060000000000000},
    {0x0163200000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0163200000000000, 0x0000000000000000},
    {0x0163200000000000, 0x413458550295fc56},
    {0x0163200000000000, 0x4060000000000000},
    {0x0163200000000000, 0x3ff0000000000000},
    {0x0163200000000000, 0x0163200000000000},
    {0xc17312d000000000, 0x0163200000000000},
    {0xc060000000000000, 0x0163200000000000},
    {0x0000000000000000, 0x0163200000000000},
    {0x413458550295fc56, 0x0163200000000000},
    {0x4060000000000000, 0x0163200000000000},
    {0x3ff0000000000000, 0x0163200000000000},
    {0xffff000000001100, 0x417cdb4760000000},
    {0x41bacc435a000000, 0x7fff000000000000},
    {0x40f463dd70a3d70a, 0x402289374bc6a7f0},
    {0x402c90624dd2f1aa, 0x40cfbb8ccccccccc},
    {0x0000000000000001, 0x0000000000000001},
    {0x58c8000000000000, 0xc17312d000000000},
    {0x58c8000000000000, 0xc060000000000000},
    {0x58c8000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x58c8000000000000, 0x0000000000000000},
    {0x58c8000000000000, 0x413458550295fc56},
    {0x58c8000000000000, 0x4060000000000000},
    {0x58c8000000000000, 0x3ff0000000000000},
    {0x58c8000000000000, 0x58c8000000000000},
    {0xc17312d000000000, 0x58c8000000000000},
    {0xc060000000000000, 0x58c8000000000000},
    {0x0000000000000000, 0x58c8000000000000},
    {0x413458550295fc56, 0x58c8000000000000},
    {0x4060000000000000, 0x58c8000000000000}
};

const size_t TSTDMUL_LENGTH = sizeof(TestCases_FMUL_D) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FADD_D[][2] = {
    {0x801a849d8a54ce7a, 0x001ec52a673d103b},
    {0x4024a5604189374c, 0xc015554c985f06f7},
    {0xfffcfae57723852f, 0xfff2bb91c297ea7c},
    {0x7ffdd92a4fa86188, 0xfff527d430c40dfb},
    {0xfff83dbe1a26a815, 0xffff0d13540abcd1},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4136705100000000},
    {0x4179062540000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41c41df778800000},
    {0x41b0ed4e1a000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41aff797ea000000},
    {0x4181d2dfa0000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4194a25ef0000000},
    {0x41b21edc2c000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000001, 0xc17312d000000000},
    {0x0000000000000001, 0xc060000000000000},
    {0x0000000000000001, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000001, 0x0000000000000000},
    {0x0000000000000001, 0x413458550295fc56},
    {0x0000000000000001, 0x4060000000000000},
    {0x0000000000000001, 0x3ff0000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0xc17312d000000000, 0x0000000000000001},
    {0xc060000000000000, 0x0000000000000001},
    {0x0000000000000000, 0x0000000000000001},
    {0x413458550295fc56, 0x0000000000000001},
    {0x4060000000000000, 0x0000000000000001},
    {0x3ff0000000000000, 0x0000000000000001},
    {0xffff000000001100, 0x41930f4ff4000000},
    {0x41a066b6cc000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000008000, 0xc17312d000000000},
    {0x0000000000008000, 0xc060000000000000},
    {0x0000000000008000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000008000, 0x0000000000000000},
    {0x0000000000008000, 0x413458550295fc56},
    {0x0000000000008000, 0x4060000000000000},
    {0x0000000000008000, 0x3ff0000000000000},
    {0x0000000000008000, 0x0000000000008000},
    {0xc17312d000000000, 0x0000000000008000},
    {0xc060000000000000, 0x0000000000008000},
    {0x0000000000000000, 0x0000000000008000},
    {0x413458550295fc56, 0x0000000000008000},
    {0x4060000000000000, 0x0000000000008000},
    {0x3ff0000000000000, 0x0000000000008000},
    {0xffff000000001100, 0x41b3001ab4000000},
    {0x41b8d4ee24000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000200000000000, 0xc17312d000000000},
    {0x0000200000000000, 0xc060000000000000},
    {0x0000200000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000200000000000, 0x0000000000000000},
    {0x0000200000000000, 0x413458550295fc56},
    {0x0000200000000000, 0x4060000000000000},
    {0x0000200000000000, 0x3ff0000000000000},
    {0x0000200000000000, 0x0000200000000000},
    {0xc17312d000000000, 0x0000200000000000},
    {0xc060000000000000, 0x0000200000000000},
    {0x0000000000000000, 0x0000200000000000},
    {0x413458550295fc56, 0x0000200000000000},
    {0x4060000000000000, 0x0000200000000000},
    {0x3ff0000000000000, 0x0000200000000000},
    {0xffff000000001100, 0x41b4534397000000},
    {0x419fbe86b4000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0008000000000000, 0xc17312d000000000},
    {0x0008000000000000, 0xc060000000000000},
    {0x0008000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0008000000000000, 0x0000000000000000},
    {0x0008000000000000, 0x413458550295fc56},
    {0x0008000000000000, 0x4060000000000000},
    {0x0008000000000000, 0x3ff0000000000000},
    {0x0008000000000000, 0x0008000000000000},
    {0xc17312d000000000, 0x0008000000000000},
    {0xc060000000000000, 0x0008000000000000},
    {0x0000000000000000, 0x0008000000000000},
    {0x413458550295fc56, 0x0008000000000000},
    {0x4060000000000000, 0x0008000000000000},
    {0x3ff0000000000000, 0x0008000000000000},
    {0xffff000000001100, 0x41c0e84354000000},
    {0x41a5538ba2000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000002, 0xc17312d000000000},
    {0x0000000000000002, 0xc060000000000000},
    {0x0000000000000002, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000002, 0x0000000000000000},
    {0x0000000000000002, 0x413458550295fc56},
    {0x0000000000000002, 0x4060000000000000},
    {0x0000000000000002, 0x3ff0000000000000},
    {0x0000000000000002, 0x0000000000000002},
    {0xc17312d000000000, 0x0000000000000002},
    {0xc060000000000000, 0x0000000000000002},
    {0x0000000000000000, 0x0000000000000002},
    {0x413458550295fc56, 0x0000000000000002},
    {0x4060000000000000, 0x0000000000000002},
    {0x39e0000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x39e0000000000000, 0x0000000000000000},
    {0x39e0000000000000, 0x413458550295fc56},
    {0x39e0000000000000, 0x4060000000000000},
    {0x39e0000000000000, 0x3ff0000000000000},
    {0x39e0000000000000, 0x39e0000000000000},
    {0xc17312d000000000, 0x39e0000000000000},
    {0xc060000000000000, 0x39e0000000000000},
    {0x0000000000000000, 0x39e0000000000000},
    {0x413458550295fc56, 0x39e0000000000000},
    {0x4060000000000000, 0x39e0000000000000},
    {0x3ff0000000000000, 0x39e0000000000000},
    {0xffff000000001100, 0x41c4113938000000},
    {0x41c2b89595000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x000000000000073d, 0xc17312d000000000},
    {0x000000000000073d, 0xc060000000000000},
    {0x000000000000073d, 0xbeb0c6f7a0b5ed8d},
    {0x000000000000073d, 0x0000000000000000},
    {0x000000000000073d, 0x413458550295fc56},
    {0x000000000000073d, 0x4060000000000000},
    {0x000000000000073d, 0x3ff0000000000000},
    {0x000000000000073d, 0x000000000000073d}
};

const size_t TSTDADD_LENGTH = sizeof(TestCases_FADD_D) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FSUB_D[][2] = {
    {0x00105e0a0bd63fed, 0x000505eb1ff6d966},
    {0x804f7a5d3ab03b45, 0x804e9d581da2d710},
    {0x803bfbf92cbbb686, 0x803c965ddb436c66},
    {0x804aa735a1b3462b, 0x804ad0d9a315d165},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41aff797ea000000},
    {0x4181d2dfa0000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0xc060000000000000},
    {0x0000000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4194a25ef0000000},
    {0x41b21edc2c000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x4060000000000000, 0x0000000000000001},
    {0x3ff0000000000000, 0x0000000000000001},
    {0xffff000000001100, 0x41930f4ff4000000},
    {0x41a066b6cc000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000008000, 0xc17312d000000000},
    {0x0000000000008000, 0xc060000000000000},
    {0x0000000000008000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000008000, 0x0000000000000000},
    {0x0000000000008000, 0x413458550295fc56},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000200000000000, 0xc17312d000000000},
    {0x0000200000000000, 0xc060000000000000},
    {0x0000200000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0000200000000000, 0x0000000000000000},
    {0x0000200000000000, 0x413458550295fc56},
    {0x0000200000000000, 0x4060000000000000},
    {0x0000200000000000, 0x3ff0000000000000},
    {0x0000200000000000, 0x0000200000000000},
    {0xc17312d000000000, 0x0000200000000000},
    {0xc060000000000000, 0x0000200000000000},
    {0x0000000000000000, 0x0000200000000000},
    {0x413458550295fc56, 0x0000200000000000},
    {0x4060000000000000, 0x0000200000000000},
    {0x3ff0000000000000, 0x0000200000000000},
    {0xffff000000001100, 0x41b4534397000000},
    {0x419fbe86b4000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0008000000000000, 0xc17312d000000000},
    {0x0008000000000000, 0xc060000000000000},
    {0x0008000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0008000000000000, 0x0000000000000000},
    {0x0008000000000000, 0x413458550295fc56},
    {0x0008000000000000, 0x4060000000000000},
    {0x0008000000000000, 0x3ff0000000000000},
    {0x0008000000000000, 0x0008000000000000},
    {0xc17312d000000000, 0x0008000000000000},
    {0xc060000000000000, 0x0008000000000000},
    {0x0000000000000000, 0x0008000000000000},
    {0x413458550295fc56, 0x0008000000000000},
    {0x4060000000000000, 0x0008000000000000},
    {0x3ff0000000000000, 0x0008000000000000},
    {0xffff000000001100, 0x41c0e84354000000},
    {0x41a5538ba2000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000002, 0xc17312d000000000},
    {0x0000000000000002, 0xc060000000000000},
    {0x0000000000000002, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000002, 0x0000000000000000},
    {0x0000000000000002, 0x413458550295fc56},
    {0x0000000000000002, 0x4060000000000000},
    {0x0000000000000002, 0x3ff0000000000000},
    {0x0000000000000002, 0x0000000000000002},
    {0xc17312d000000000, 0x0000000000000002},
    {0xc060000000000000, 0x0000000000000002},
    {0x0000000000000000, 0x0000000000000002},
    {0x413458550295fc56, 0x0000000000000002},
    {0x4060000000000000, 0x0000000000000002},
    {0x39e0000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x39e0000000000000, 0x0000000000000000},
    {0x39e0000000000000, 0x413458550295fc56},
    {0x39e0000000000000, 0x4060000000000000},
    {0x39e0000000000000, 0x3ff0000000000000},
    {0x39e0000000000000, 0x39e0000000000000},
    {0xc17312d000000000, 0x39e0000000000000},
    {0xc060000000000000, 0x39e0000000000000},
    {0x0000000000000000, 0x39e0000000000000},
    {0x413458550295fc56, 0x39e0000000000000},
    {0x4060000000000000, 0x39e0000000000000},
    {0x3ff0000000000000, 0x39e0000000000000},
    {0xffff000000001100, 0x41c4113938000000},
    {0x41c2b89595000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x000000000000073d, 0xc17312d000000000},
    {0x000000000000073d, 0xc060000000000000},
    {0x000000000000073d, 0xbeb0c6f7a0b5ed8d},
    {0x000000000000073d, 0x0000000000000000},
    {0x000000000000073d, 0x413458550295fc56},
    {0x000000000000073d, 0x4060000000000000},
    {0x000000000000073d, 0x3ff0000000000000},
    {0x000000000000073d, 0x000000000000073d}
};

const size_t TSTDSUB_LENGTH = sizeof(TestCases_FSUB_D) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FCMP_D[][2] = {
    {0x0000000003a08000, 0x413458550295fc56},
    {0x0000000003a08000, 0x4060000000000000},
    {0x0000000003a08000, 0x3ff0000000000000},
    {0x0000000003a08000, 0x0000000003a08000},
    {0xc17312d000000000, 0x0000000003a08000},
    {0xc060000000000000, 0x0000000003a08000},
    {0x0000000000000000, 0x0000000003a08000},
    {0x413458550295fc56, 0x0000000003a08000},
    {0x4060000000000000, 0x0000000003a08000},
    {0x3ff0000000000000, 0x0000000003a08000},
    {0xffff000000001100, 0x41a468cad0000000},
    {0x4179bf6870000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x00e8200000000000, 0xc17312d000000000},
    {0x00e8200000000000, 0xc060000000000000},
    {0x00e8200000000000, 0xbeb0c6f7a0b5ed8d},
    {0x00e8200000000000, 0x0000000000000000},
    {0x00e8200000000000, 0x413458550295fc56},
    {0x00e8200000000000, 0x4060000000000000},
    {0x00e8200000000000, 0x3ff0000000000000},
    {0x00e8200000000000, 0x00e8200000000000},
    {0xc17312d000000000, 0x00e8200000000000},
    {0xc060000000000000, 0x00e8200000000000},
    {0x0000000000000000, 0x00e8200000000000},
    {0x413458550295fc56, 0x00e8200000000000},
    {0x4060000000000000, 0x00e8200000000000},
    {0x3ff0000000000000, 0x00e8200000000000},
    {0xffff000000001100, 0x41c0a5e9a9800000},
    {0x4141757900000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x3a08000000000000, 0xc17312d000000000},
    {0x3a08000000000000, 0xc060000000000000},
    {0x3a08000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x3a08000000000000, 0x0000000000000000},
    {0x3a08000000000000, 0x413458550295fc56},
    {0x3a08000000000000, 0x4060000000000000},
    {0x3a08000000000000, 0x3ff0000000000000},
    {0x3a08000000000000, 0x3a08000000000000},
    {0xc17312d000000000, 0x3a08000000000000},
    {0xc060000000000000, 0x3a08000000000000},
    {0x0000000000000000, 0x3a08000000000000},
    {0x413458550295fc56, 0x3a08000000000000},
    {0x4060000000000000, 0x3a08000000000000},
    {0x3ff0000000000000, 0x3a08000000000000},
    {0xffff000000001100, 0x41bb113a18000000},
    {0x41b0be5840000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000742, 0xc17312d000000000},
    {0x0000000000000742, 0xc060000000000000},
    {0x0000000000000742, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000742, 0x0000000000000000},
    {0x0000000000000742, 0x413458550295fc56},
    {0x0000000000000742, 0x4060000000000000},
    {0x0000000000000742, 0x3ff0000000000000},
    {0x0000000000000742, 0x0000000000000742},
    {0xc17312d000000000, 0x0000000000000742},
    {0xc060000000000000, 0x0000000000000742}
};

const size_t TSTDCMP_LENGTH = sizeof(TestCases_FCMP_D) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FMORE_D[][2] = {
    {0x419359c2c4000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000006080000, 0xc17312d000000000},
    {0x0000000006080000, 0xc060000000000000},
    {0x0000000006080000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000006080000, 0x0000000000000000},
    {0x0000000006080000, 0x413458550295fc56},
    {0x0000000006080000, 0x4060000000000000},
    {0x0000000006080000, 0x3ff0000000000000},
    {0x0000000006080000, 0x0000000006080000},
    {0xc17312d000000000, 0x0000000006080000},
    {0xc060000000000000, 0x0000000006080000},
    {0x0000000000000000, 0x0000000006080000},
    {0x413458550295fc56, 0x0000000006080000},
    {0x4060000000000000, 0x0000000006080000},
    {0x3ff0000000000000, 0x0000000006080000},
    {0xffff000000001100, 0x418ee4f8a8000000},
    {0x41cca76bc4000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0182000000000000, 0xc17312d000000000},
    {0x0182000000000000, 0xc060000000000000},
    {0x0182000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x0182000000000000, 0x0000000000000000},
    {0x0182000000000000, 0x413458550295fc56},
    {0x0182000000000000, 0x4060000000000000},
    {0x0182000000000000, 0x3ff0000000000000},
    {0x0182000000000000, 0x0182000000000000},
    {0xc17312d000000000, 0x0182000000000000},
    {0xc060000000000000, 0x0182000000000000},
    {0x0000000000000000, 0x0182000000000000},
    {0x413458550295fc56, 0x0182000000000000},
    {0x4060000000000000, 0x0182000000000000},
    {0x3ff0000000000000, 0x0182000000000000},
    {0xffff000000001100, 0x41c408cbc9000000},
    {0x41cbdab6f0800000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x6080000000000000, 0xc17312d000000000},
    {0x6080000000000000, 0xc060000000000000},
    {0x6080000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x6080000000000000, 0x0000000000000000},
    {0x6080000000000000, 0x413458550295fc56},
    {0x6080000000000000, 0x4060000000000000},
    {0x6080000000000000, 0x3ff0000000000000},
    {0x6080000000000000, 0x6080000000000000},
    {0xc17312d000000000, 0x6080000000000000},
    {0xc060000000000000, 0x6080000000000000},
    {0x0000000000000000, 0x6080000000000000},
    {0x413458550295fc56, 0x6080000000000000},
    {0x4060000000000000, 0x6080000000000000},
    {0x3ff0000000000000, 0x6080000000000000},
    {0xffff000000001100, 0x41c557d240800000},
    {0x41afbb8858000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000c11, 0xc17312d000000000},
    {0x0000000000000c11, 0xc060000000000000},
    {0x0000000000000c11, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000c11, 0x0000000000000000},
    {0x0000000000000c11, 0x413458550295fc56},
    {0x0000000000000c11, 0x4060000000000000},
    {0x0000000000000c11, 0x3ff0000000000000},
    {0x0000000000000c11, 0x0000000000000c11},
    {0xc17312d000000000, 0x0000000000000c11},
    {0xc060000000000000, 0x0000000000000c11},
    {0x0000000000000000, 0x0000000000000c11},
    {0x413458550295fc56, 0x0000000000000c11},
    {0x4060000000000000, 0x0000000000000c11},
    {0x3ff0000000000000, 0x0000000000000c11},
    {0xffff000000001100, 0x41a669c7a0000000},
    {0x41b57165f8000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000006088000, 0xc17312d000000000},
    {0x0000000006088000, 0xc060000000000000},
    {0x0000000006088000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000006088000, 0x0000000000000000},
    {0x0000000006088000, 0x413458550295fc56},
    {0x0000000006088000, 0x4060000000000000},
    {0x0000000006088000, 0x3ff0000000000000},
    {0x0000000006088000, 0x0000000006088000},
    {0xc17312d000000000, 0x0000000006088000},
    {0xc060000000000000, 0x0000000006088000},
    {0x0000000000000000, 0x0000000006088000},
    {0x413458550295fc56, 0x0000000006088000},
    {0x4060000000000000, 0x0000000006088000},
    {0x3ff0000000000000, 0x0000000006088000},
    {0xffff000000001100, 0x4181110a00000000},
    {0x41a6fc0f10000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001}
};

const size_t TSTMORE_LENGTH = sizeof(TestCases_FMORE_D) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FABS_D[][2] = {
    {0x01dde00000000000, 0xc060000000000000},
    {0x01dde00000000000, 0xbeb0c6f7a0b5ed8d},
    {0x01dde00000000000, 0x0000000000000000},
    {0x01dde00000000000, 0x413458550295fc56},
    {0x01dde00000000000, 0x4060000000000000},
    {0x01dde00000000000, 0x3ff0000000000000},
    {0x01dde00000000000, 0x01dde00000000000},
    {0xc17312d000000000, 0x01dde00000000000},
    {0xc060000000000000, 0x01dde00000000000},
    {0x0000000000000000, 0x01dde00000000000},
    {0x413458550295fc56, 0x01dde00000000000},
    {0x4060000000000000, 0x01dde00000000000},
    {0x3ff0000000000000, 0x01dde00000000000},
    {0xffff000000001100, 0x419edb5af0000000},
    {0x41a9dbe9d8000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x7778000000000000, 0xc17312d000000000},
    {0x7778000000000000, 0xc060000000000000},
    {0x7778000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x7778000000000000, 0x0000000000000000},
    {0x7778000000000000, 0x413458550295fc56},
    {0x7778000000000000, 0x4060000000000000},
    {0x7778000000000000, 0x3ff0000000000000},
    {0x7778000000000000, 0x7778000000000000},
    {0xc17312d000000000, 0x7778000000000000},
    {0xc060000000000000, 0x7778000000000000},
    {0x0000000000000000, 0x7778000000000000},
    {0x413458550295fc56, 0x7778000000000000},
    {0x4060000000000000, 0x7778000000000000},
    {0x3ff0000000000000, 0x7778000000000000},
    {0xffff000000001100, 0x4194ff0d00000000},
    {0x41621dd680000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000ef0, 0xc17312d000000000},
    {0x0000000000000ef0, 0xc060000000000000},
    {0x0000000000000ef0, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000000ef0, 0x0000000000000000},
    {0x0000000000000ef0, 0x413458550295fc56},
    {0x0000000000000ef0, 0x4060000000000000},
    {0x0000000000000ef0, 0x3ff0000000000000},
    {0x0000000000000ef0, 0x0000000000000ef0},
    {0xc17312d000000000, 0x0000000000000ef0},
    {0xc060000000000000, 0x0000000000000ef0},
    {0x0000000000000000, 0x0000000000000ef0},
    {0x413458550295fc56, 0x0000000000000ef0},
    {0x4060000000000000, 0x0000000000000ef0},
    {0x3ff0000000000000, 0x0000000000000ef0},
    {0xffff000000001100, 0x41b7878c20000000},
    {0x4191383ae0000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000007780000, 0xc17312d000000000},
    {0x0000000007780000, 0xc060000000000000},
    {0x0000000007780000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000007780000, 0x0000000000000000},
    {0x0000000007780000, 0x413458550295fc56},
    {0x0000000007780000, 0x4060000000000000},
    {0x0000000007780000, 0x3ff0000000000000},
    {0x0000000007780000, 0x0000000007780000},
    {0xc17312d000000000, 0x0000000007780000},
    {0xc060000000000000, 0x0000000007780000},
    {0x0000000000000000, 0x0000000007780000},
    {0x413458550295fc56, 0x0000000007780000},
    {0x4060000000000000, 0x0000000007780000},
    {0x3ff0000000000000, 0x0000000007780000},
    {0xffff000000001100, 0x4196b55814000000},
    {0x419e7f3ab4000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x01de000000000000, 0xc17312d000000000},
    {0x01de000000000000, 0xc060000000000000},
    {0x01de000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x01de000000000000, 0x0000000000000000},
    {0x01de000000000000, 0x413458550295fc56},
    {0x01de000000000000, 0x4060000000000000},
    {0x01de000000000000, 0x3ff0000000000000},
    {0x01de000000000000, 0x01de000000000000},
    {0xc17312d000000000, 0x01de000000000000},
    {0xc060000000000000, 0x01de000000000000},
    {0x0000000000000000, 0x01de000000000000},
    {0x413458550295fc56, 0x01de000000000000},
    {0x4060000000000000, 0x01de000000000000},
    {0x3ff0000000000000, 0x01de000000000000},
    {0xffff000000001100, 0x41a9e4ad78000000},
    {0x41aa2d2e96000000, 0x7fff000000000000},
    {0x0000000000000001, 0x0000000000000001},
    {0x7780000000000000, 0xc17312d000000000},
    {0x7780000000000000, 0xc060000000000000},
    {0x7780000000000000, 0xbeb0c6f7a0b5ed8d},
    {0x7780000000000000, 0x0000000000000000},
    {0x7780000000000000, 0x413458550295fc56},
};

const size_t TSTDABS_LENGTH = sizeof(TestCases_FABS_D) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FCVT_D_L[][2] = {
    {0x7ffffffffffffa00, 0x0000000000000000},
    {0x7ffffffffffffe00, 0x0000000000000000},
    {0x7fffffffffffffff, 0x0000000000000000},
    {0xffffffffffffffff, 0x0000000000000000},
    {0x7ffffffffffffffe, 0x0000000000000000},
    {0x8000000000000001, 0x0000000000000000},
    {0x8000000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000000000002, 0x0000000000000000},
    {0x7000000000000001, 0x0000000000000000},
    {0x7000000000000002, 0x0000000000000000},
    {0x7000000000000003, 0x0000000000000000},
};

const size_t TSTL2D_LENGTH = sizeof(TestCases_FCVT_D_L) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FCVT_D_W[][2] = {
    {0x00000000ffffffff, 0x0000000000000000},
    {0x000000007fffffff, 0x0000000000000000},
    {0x0000000080000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x0000000080000001, 0x0000000000000000},
    {0x0000000000000001, 0x0000000000000000},
    {0x4a11dedd93d069ae, 0x0000000000000000}
};

const size_t TSTW2D_LENGTH = sizeof(TestCases_FCVT_D_W) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FCVT_L_D[][2] = {
    {0x3fffffffffffffff, 0x3fffffffffffffff},
    {0x38ffffffffffffff, 0xc17312d000000000},
    {0x4fffffffffffffff, 0xbeb0c6f7a0b5ed8d},
    {0x7f0fffffffffffff, 0x0000000000000000},
    {0x0000000000000000, 0x413458550295fc56},
    {0x0000000000000000, 0x4060000000000000},
    {0x0000000000000000, 0x3ff0000000000000},
    {0x3fffffffffffffff, 0xc060000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4136705100000000},
    {0x4179062540000000, 0x7fff000000000000},
    {0x410b543a8f5c28f6, 0x400f374bc6a7ef9e},
    {0x3fd2b020c49ba5e3, 0x410a67cc51eb851e},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41cc509cf9000000},
    {0x4190d62860000000, 0x7fff000000000000},
    {0x411a6f79f5c28f5c, 0x401b78d4fdf3b646},
    {0x403ba4dd2f1a9fbf, 0x412169da47ae147b},
    {0x0000000000000001, 0x0000000000000001},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x41c28668a8000000},
    {0x41997e1c88000000, 0x7fff000000000000},
    {0x410cb99c00000000, 0x402e03126e978d50},
    {0x4038649ba5e353f8, 0x40ee43f1eb851eb8},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000000, 0xc17312d000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0xc17312d000000000, 0x0000000000000000},
    {0xc060000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x413458550295fc56, 0x0000000000000000},
    {0x4060000000000000, 0x0000000000000000},
    {0x3ff0000000000000, 0x0000000000000000},
    {0xffff000000001100, 0x4180006560000000},
    {0x41930f4ff4000000, 0x7fff000000000000},
    {0x40f15cbdeb851eb8, 0x403da872b020c49c},
    {0x4023dc28f5c28f5c, 0x410dce91851eb851},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000001, 0xc17312d000000000},
    {0x0000000000000001, 0xc060000000000000},
    {0xc17312d000000000, 0x0000000000000001},
    {0xc060000000000000, 0x0000000000000001},
    {0x0000000000000000, 0x0000000000000001},
    {0x413458550295fc56, 0x0000000000000001},
    {0x4060000000000000, 0x0000000000000001},
    {0x3ff0000000000000, 0x0000000000000001},
    {0xffff000000001100, 0x41b8d4ee24000000},
    {0x41b5f5621a000000, 0x7fff000000000000},
    {0x41068da947ae147b, 0x403b59999999999a},
    {0x4030f0e560418937, 0x411729f91eb851eb},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000008000, 0xc17312d000000000},
    {0x0000000000008000, 0xc060000000000000},
    {0x0000000000008000, 0xbeb0c6f7a0b5ed8d},
    {0x0000000000008000, 0x0000000000000000},
    {0x0000000000008000, 0x413458550295fc56},
    {0x0000000000008000, 0x4060000000000000},
    {0x0000000000008000, 0x3ff0000000000000},
    {0x0000000000008000, 0x0000000000008000},
    {0xc17312d000000000, 0x0000000000008000},
    {0xc060000000000000, 0x0000000000008000},
    {0x0000000000000000, 0x0000000000008000},
    {0x413458550295fc56, 0x0000000000008000},
    {0x4060000000000000, 0x0000000000008000},
    {0x3ff0000000000000, 0x0000000000008000},
    {0xffff000000001100, 0x41a3190398000000},
    {0x41a97e881c000000, 0x7fff000000000000},
    {0x40caf28000000000, 0x40404ba5e353f7cf},
    {0x3ffa7ae147ae147b, 0x41129062cccccccc},
    {0x0000000000000001, 0x0000000000000001},
    {0x3ff0000000000000, 0x58c8000000000000},
    {0xffff000000001100, 0x41b9c0d8c0000000},
    {0x41b72aa22a000000, 0x7fff000000000000},
    {0x4113d77feb851eb8, 0x403070a3d70a3d71},
    {0x4031020c49ba5e35, 0x4104dfa2e147ae14},
    {0x0000000000000001, 0x0000000000000000},
    {0x0000000000000b1a, 0x3ff0000000000000},
    {0x0000000000000b1a, 0x0000000000000b1a},
    {0xc17312d000000000, 0x0000000000000b1a},
    {0xc060000000000000, 0x0000000000000b1a},
    {0x0000000000000000, 0x0000000000000b1a},
    {0x413458550295fc56, 0x0000000000000b1a},
    {0x4060000000000000, 0x0000000000000b1a},
    {0x3ff0000000000000, 0x0000000000000b1a},
    {0xffff000000001100, 0x419a6be460000000},
    {0x41a00fb4bc000000, 0x7fff000000000000},
    {0x410b4b9b0a3d70a4, 0x40392d916872b021},
    {0x40325ef9db22d0e5, 0x40e79ecdc28f5c29},
    {0x0000000000000001, 0x0000000000000001},
    {0x00000000058d0000, 0x00000000058d0000},
    {0xc17312d000000000, 0x00000000058d0000},
    {0xc060000000000000, 0x00000000058d0000},
    {0x0000000000000000, 0x00000000058d0000},
    {0x413458550295fc56, 0x00000000058d0000},
    {0x4060000000000000, 0x00000000058d0000},
    {0x3ff0000000000000, 0x00000000058d0000},
    {0xffff000000001100, 0x419fd6b71c000000},
    {0x41c1b06d42800000, 0x7fff000000000000},
    {0x40b9fd3851eb851f, 0x402511eb851eb852},
    {0x403136872b020c4a, 0x40f9c0bdc28f5c28},
    {0x0000000000000001, 0x0000000000000001},
    {0x0163400000000000, 0xc17312d000000000},
    {0x0163400000000000, 0x0163400000000000},
    {0xc17312d000000000, 0x0163400000000000},
    {0xc060000000000000, 0x0163400000000000},
    {0x0000000000000000, 0x0163400000000000},
    {0x413458550295fc56, 0x0163400000000000},
    {0x4060000000000000, 0x0163400000000000},
    {0x3ff0000000000000, 0x0163400000000000},
    {0xffff000000001100, 0x41af2f33e2000000},
    {0x41a0c38c80000000, 0x7fff000000000000},
    {0x4101d8570a3d70a4, 0x40345f7ced916873},
    {0x402750e560418937, 0x411fef69ffffffff},
    {0x0000000000000001, 0x0000000000000001},
    {0x58d0000000000000, 0xc17312d000000000},
    {0x58d0000000000000, 0x413458550295fc56},
    {0x58d0000000000000, 0x4060000000000000},
    {0x41b4639ed0000000, 0x7fff000000000000},
    {0x41175fbaeb851eb8, 0x4007a3d70a3d70a4},
    {0x403e8147ae147ae1, 0x41205810a3d70a3d},
    {0x0000000000000001, 0x0000000000000001},
    {0x0000000000000b19, 0xc17312d000000000},
    {0xc17312d000000000, 0x0000000000000b19},
    {0xc060000000000000, 0x0000000000000b19},
    {0x0000000000000000, 0x0000000000000b19},
    {0x413458550295fc56, 0x0000000000000b19},
    {0x4060000000000000, 0x0000000000000b19},
    {0x3ff0000000000000, 0x0000000000000b19},
    {0xffff000000001100, 0x4166829820000000},
    {0x41aa16b916000000, 0x7fff000000000000},
    {0x411e1dcad70a3d71, 0x40242353f7ced917},
    {0x3fc6a7ef9db22d0e, 0x40cc37d851eb851e},
    {0x00000000058c8000, 0x3ff0000000000000},
    {0x00000000058c8000, 0x00000000058c8000},
    {0xc17312d000000000, 0x00000000058c8000},
    {0xc060000000000000, 0x00000000058c8000},
    {0x0000000000000000, 0x00000000058c8000},
    {0x413458550295fc56, 0x00000000058c8000},
    {0x4060000000000000, 0x00000000058c8000},
    {0x3ff0000000000000, 0x00000000058c8000},
    {0xffff000000001100, 0x41ac1e2b90000000},
    {0x41b112678b000000, 0x7fff000000000000},
    {0x4116be493d70a3d7, 0x403d26e978d4fdf4},
    {0x40312b020c49ba5e, 0x411ed5fbb851eb85},
    {0x0000000000000001, 0x0000000000000001},
    {0x0163200000000000, 0x0163200000000000},
    {0xc17312d000000000, 0x0163200000000000},
    {0xc060000000000000, 0x0163200000000000},
    {0x0000000000000000, 0x0163200000000000},
    {0x413458550295fc56, 0x0163200000000000},
    {0x4060000000000000, 0x0163200000000000},
    {0x3ff0000000000000, 0x0163200000000000},
    {0xffff000000001100, 0x417cdb4760000000},
    {0x41bacc435a000000, 0x7fff000000000000},
    {0x40f463dd70a3d70a, 0x402289374bc6a7f0},
    {0x402c90624dd2f1aa, 0x40cfbb8ccccccccc},
    {0x0000000000000001, 0x0000000000000001},
    {0x58c8000000000000, 0x58c8000000000000},
    {0xc17312d000000000, 0x58c8000000000000},
    {0xc060000000000000, 0x58c8000000000000},
    {0x0000000000000000, 0x58c8000000000000},
    {0x413458550295fc56, 0x58c8000000000000},
    {0x4060000000000000, 0x58c8000000000000}
};

const size_t TSTD2L_LENGTH = sizeof(TestCases_FCVT_D_L) / sizeof(uint64_t) / 2;

const uint64_t TestCases_FCVT_W_D[][2] = {
    {0x43e93bf4be560070, 0x0000000000000000},
    {0x3fffffffffffffff, 0x0000000000000000},
    {0x38ffffffffffffff, 0x0000000000000000},
    {0x41dfffffffffffff, 0x0000000000000000},
    {0x41e0000000000000, 0x0000000000000000},
    {0x41f0000000000000, 0x0000000000000000},
    {0xc1dfffffffffffff, 0x0000000000000000},
    {0xc1e0000000000000, 0x0000000000000000},
    {0x0000000000000000, 0x0000000000000000},
    {0x8000000000000000, 0x0000000000000000},
};

const size_t TSTD2W_LENGTH = sizeof(TestCases_FCVT_W_D) / sizeof(uint64_t) / 2;

}  // namespace debugger

#endif  // __DEBUGGER_SRC_SOCSIM_PLUGIN_FPU_FUNC_TESTS_H__
